package com.mazaiting.redeye.bean

import com.google.gson.annotations.SerializedName


/***
 *
 *
 *                                                    __----~~~~~~~~~~~------___
 *                                   .  .   ~~//====......          __--~ ~~
 *                   -.            \_|//     |||\\  ~~~~~~::::... /~
 *                ___-==_       _-~o~  \/    |||  \\            _/~~-
 *        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 *    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 *  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 *          '         ~-|      /|    |-~\~~       __--~~
 *                      |-~~-_/ |    |   ~\_   _-~            /\
 *                           /  \     \__   \/~                \__
 *                       _--~ _/ | .-~~____--~-/                  ~~==.
 *                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 *                                 -_     ~\      ~~---l__i__i__i--~~_/
 *                                 _-~-__   ~)  \--______________--~~
 *                               //.-~~~-~_--~- |-------~~~~~~~~
 *                                      //.-~~~--\
 *                               神兽保佑
 *                              代码无BUG!
 * @author mazaiting
 * @date 2019-07-08
 * @description 图虫实体
 */
data class WormBean (
    /**
     * 偏好列表
     */
    @SerializedName("feedList")
    val feedList: List<FeedBean>
)

/**
 * 偏好实体
 */
data class FeedBean(

    /**
     * 文章 ID
     */
    @SerializedName("post_id")
    val postId: Int = 0,
    /**
     * 文章类型
     */
    @SerializedName("type")
    val type: String = "",
    /**
     * 作者 ID
     */
    @SerializedName("author_id")
    val authorId: String = "",
    /**
     * 发布时间
     */
    @SerializedName("published_at")
    val publishedAt: String = "",
    /**
     * 文章地址
     */
    @SerializedName("url")
    val url: String = "",
    /**
     * 喜欢数
     */
    @SerializedName("favorites")
    val favorites: Int = 0,

    /**
     * 评论数
     */
    @SerializedName("comments")
    val comments: Int = 0,

    /**
     * 阅读次数
     */
    @SerializedName("views")
    val views: Int = 0,

    /**
     * 分享
     */
    @SerializedName("shares")
    val shares: Int = 0,

    /**
     * 内容
     */
    @SerializedName("content")
    val content: String = "",

    /**
     * 标题
     */
    @SerializedName("title")
    val title: String = "",

    /**
     * 图片数量
     */
    @SerializedName("image_count")
    val imageCount: Int = 0,

    /**
     * 标签
     */
    @SerializedName("tags")
    val tags: List<String> = arrayListOf(),

    /**
     * 数据类型
     */
    @SerializedName("data_type")
    val dataType: String = "",

    /**
     * 创建时间
     */
    @SerializedName("created_at")
    val createdAt: String = "",

    /**
     * 作者信息
     */
    @SerializedName("site")
    val site: SiteBean,

    /**
     * 图片列表
     */
    @SerializedName("images")
    val images: List<FeedImageBean> = arrayListOf()
)

/**
 * 图片信息
 * 图片地址: https://photo.tuchong.com/${user_id}/f/${img_id}
 */
data class FeedImageBean(

    /**
     * 图片 ID
     */
    @SerializedName("img_id")
    var imgId: Int = 0,

    /**
     * 用户 ID
     */
    @SerializedName("user_id")
    var userId: Int = 0,

    /**
     * 标题
     */
    @SerializedName("title")
    var title: String = "",

    /**
     * 摘要
     */
    @SerializedName("excerpt")
    var excerpt: String = "",

    /**
     * 图片宽度
     */
    @SerializedName(value = "width")
    var width: Int = 0,

    /**
     * 图片高度
     */
    @SerializedName(value = "height")
    var height: Int = 0,

    /**
     * 图片描述
     */
    @SerializedName(value = "description")
    var description: String = ""
)

/**
 * 作者信息
 */
data class SiteBean (

    /**
     * 作者 ID
     */
    @SerializedName("site_id")
    private val siteId: String = "",
    /**
     * 类型
     */
    @SerializedName("type")
    private val type: String = "",
    /**
     * 名字
     */
    @SerializedName("name")
    private val name: String = "",
    /**
     * 域
     */
    @SerializedName("domain")
    private val domain: String = "",
    /**
     * 描述
     */
    @SerializedName("description")
    private val description: String = "",
    /**
     * 关注
     */
    @SerializedName("followers")
    private val followers: Int = 0,
    /**
     * 主页
     */
    @SerializedName("url")
    private val url: String = "",
    /**
     * 头像
     */
    @SerializedName("icon")
    private val icon: String = "",
    /**
     * 是否关注
     */
    @SerializedName("is_following")
    private val isFollowing: Boolean = false
)
